package com.sky.d_nio_aio;


/**
 * http://www.jb51.net/article/92448.htm
 * 高并发NIO和AIO详解
 * 
 * @Author:hjt
 */
public class NioAioDemo {

	
}

/**
IO感觉上和多线程并没有多大关系，但是NIO改变了线程应用层面使用的方式，也解决了一些实际的困难
AIO是异步IO
1.什么是NIO
	NIO是New I/O的简称，与旧式的基于流的I/O方法相对，从名字看，他表示新的一套Java I/O标准
		1.1 NIO是基于块(Block)的，它以块为基本单位处理数据（硬盘上存储的单位也是按Block来存储，这样性能上
		比基于流的方式要好一些）
		1.2 为所有的原始类型提供(Buffer)缓存支持
		1.3 增加通道(Channel)对象，作为新的原始I/O抽象
		1.4 支持锁(我们在平时使用时经常能看到会出现一些.lock的文件， 这说明有线程正在使用这把锁，当线程释放锁时，会把这个文件删除掉，
		这样其它线程才能继续拿到这把锁)和内存映射文件访问接口
		1.5 提供了基于Selector的异步I/O

2. Buffer
	参数：位置（position）、容量（capactiy）和上限（limit）
	
	public final Buffer rewind()
	将position置零，并清除标志位（mark）
	public final Buffer clear()
	将position置零，同时将limit设置为capacity的大小，并清除了标志mark
	public final Buffer flip()
	先将limit设置到position所在位置，然后将position置零，并清除标志位mark，通常在读写转换时使用

3. Channel
	
4. AIO
	AIO的特点：
	1. 读完了再通知我
	2. 不会加快IO，只是在读完后进行通知
	3. 使用回调函数，进行业务处理

 */
